22.01.31 - Introduction to Software Engineering
- Overview of the whole Software Engineering process
- Give you initial practical experience of work at different stages of the process
- Prepare you for Software Engineering group project in year 2
- Presume 'good code' is the only thing that matters
- Aim to finish at the delivery deadline
- Don't design a data model, let the code produce data it needs
- Use a Technical Lead that has never built a similar system, rather than choose/hire someone who has
- Hire 40 developers to make the coding go faster
- Build the system in the language you know best, rather than 'the best tool for the job'
- Hire a junior developer to handle the migration
- Skip the testing phase because the project is behind schedule
- Change code, without planning, to meet newly discovered requirements
- Buy a commercial, off the shelf package and customise it a lot
- Don't cut corners. In long run, this result is system failure or an inadequate system that doesn't meet the user requires.
- Audit each major deliverable and step along the way for accuracy and correctness
- Carefully monitor top management support for the project
- Secure the correct technical lead for the job
- Specification - What the system should do and its development constraints
- Development - Production of the software system
- Validation - checking that the software is what the customer wanted
- Evolution - Changing code in response to demands
- Needs stable and 'perfect' requirements
- Can't always anticipate what you are going to have to do
- Does not account for revision or refactoring
- Too inflexible and static
- Depends on getting each stage exactly right
- Lack of process visibility
- Too much doing and not enough planning
- Special skills
- Lightweight documentation tone to mean no documentation